
move.o:     file format elf64-littleaarch64


Disassembly of section .text:

0000000000000000 <main>:
#include <stdio.h>

int main()
{
   0:	a9bb7bfd 	stp	x29, x30, [sp, #-80]!
   4:	910003fd 	mov	x29, sp
	//				0   1   2   3  4   5   6
	int data[10] = {10, 15, 20, 25, 30, 35, 40};
   8:	910063a0 	add	x0, x29, #0x18
   c:	a9007c1f 	stp	xzr, xzr, [x0]
  10:	9100a3a0 	add	x0, x29, #0x28
  14:	a9007c1f 	stp	xzr, xzr, [x0]
  18:	f9001fbf 	str	xzr, [x29, #56]
  1c:	52800140 	mov	w0, #0xa                   	// #10
  20:	b9001ba0 	str	w0, [x29, #24]
  24:	528001e0 	mov	w0, #0xf                   	// #15
  28:	b9001fa0 	str	w0, [x29, #28]
  2c:	52800280 	mov	w0, #0x14                  	// #20
  30:	b90023a0 	str	w0, [x29, #32]
  34:	52800320 	mov	w0, #0x19                  	// #25
  38:	b90027a0 	str	w0, [x29, #36]
  3c:	528003c0 	mov	w0, #0x1e                  	// #30
  40:	b9002ba0 	str	w0, [x29, #40]
  44:	52800460 	mov	w0, #0x23                  	// #35
  48:	b9002fa0 	str	w0, [x29, #44]
  4c:	52800500 	mov	w0, #0x28                  	// #40
  50:	b90033a0 	str	w0, [x29, #48]
	int *src;
	int *des;

	
	src = data;	// 10
  54:	910063a0 	add	x0, x29, #0x18
  58:	f90027a0 	str	x0, [x29, #72] ; src
	
	src = src + 3;
  5c:	f94027a0 	ldr	x0, [x29, #72] ; src
  60:	91003000 	add	x0, x0, #0xc   ; src + 0xc
  64:	f90027a0 	str	x0, [x29, #72] ; src
	printf("%d\n", *src);			// 25
  68:	f94027a0 	ldr	x0, [x29, #72] ; src
  6c:	b9400001 	ldr	w1, [x0]       ; *src
  70:	90000000 	adrp	x0, 0 <main>
  74:	91000000 	add	x0, x0, #0x0
  78:	94000000 	bl	0 <printf>
	printf("%d\n", *(src + 3));	// 40 没有移位
  7c:	f94027a0 	ldr	x0, [x29, #72] ; src
  80:	91003000 	add	x0, x0, #0xc   ; src + 0xc
  84:	b9400001 	ldr	w1, [x0]       ; *src
  88:	90000000 	adrp	x0, 0 <main>
  8c:	91000000 	add	x0, x0, #0x0
  90:	94000000 	bl	0 <printf>
	printf("%d\n", src[3]);		// 40 没有移位
  94:	f94027a0 	ldr	x0, [x29, #72] ; src
  98:	91003000 	add	x0, x0, #0xc   ; src + 0xc
  9c:	b9400001 	ldr	w1, [x0]       ; *src
  a0:	90000000 	adrp	x0, 0 <main>
  a4:	91000000 	add	x0, x0, #0x0
  a8:	94000000 	bl	0 <printf>

	src = data;
  ac:	910063a0 	add	x0, x29, #0x18 ; data
  b0:	f90027a0 	str	x0, [x29, #72] ; src
	printf("%d\n", *(src + 3));	// 25 没有移位
  b4:	f94027a0 	ldr	x0, [x29, #72] ; src
  b8:	91003000 	add	x0, x0, #0xc   ; src + 0xc
  bc:	b9400001 	ldr	w1, [x0]       ; *src
  c0:	90000000 	adrp	x0, 0 <main>
  c4:	91000000 	add	x0, x0, #0x0
  c8:	94000000 	bl	0 <printf>
	printf("%d\n", src[3]);		// 25 没有移位
  cc:	f94027a0 	ldr	x0, [x29, #72] ; src
  d0:	91003000 	add	x0, x0, #0xc   ; src+0xc
  d4:	b9400001 	ldr	w1, [x0]       ; *src
  d8:	90000000 	adrp	x0, 0 <main>
  dc:	91000000 	add	x0, x0, #0x0
  e0:	94000000 	bl	0 <printf>
	
	src++;	// 移到下一位
  e4:	f94027a0 	ldr	x0, [x29, #72]
  e8:	91001000 	add	x0, x0, #0x4 ; src + 4
  ec:	f90027a0 	str	x0, [x29, #72]
	printf("%d\n", *src);		// 15
  f0:	f94027a0 	ldr	x0, [x29, #72]
  f4:	b9400001 	ldr	w1, [x0] ; *src
  f8:	90000000 	adrp	x0, 0 <main>
  fc:	91000000 	add	x0, x0, #0x0
 100:	94000000 	bl	0 <printf>

	src = data;
 104:	910063a0 	add	x0, x29, #0x18 ; data
 108:	f90027a0 	str	x0, [x29, #72]
	des = src;
 10c:	f94027a0 	ldr	x0, [x29, #72]
 110:	f90023a0 	str	x0, [x29, #64]        ; des
	printf("%d : des = %d\n", __LINE__, *des);	// 10
 114:	f94023a0 	ldr	x0, [x29, #64]
 118:	b9400001 	ldr	w1, [x0] ; *des
 11c:	90000000 	adrp	x0, 0 <main>
 120:	91000000 	add	x0, x0, #0x0
 124:	2a0103e2 	mov	w2, w1
 128:	52800361 	mov	w1, #0x1b                  	// #27
 12c:	94000000 	bl	0 <printf>
	des++;
 130:	f94023a0 	ldr	x0, [x29, #64]
 134:	91001000 	add	x0, x0, #0x4 ; des++
 138:	f90023a0 	str	x0, [x29, #64]
	printf("%d : des = %d\n", __LINE__, *des);	// 15
 13c:	f94023a0 	ldr	x0, [x29, #64]
 140:	b9400001 	ldr	w1, [x0] ; *des
 144:	90000000 	adrp	x0, 0 <main>
 148:	91000000 	add	x0, x0, #0x0
 14c:	2a0103e2 	mov	w2, w1
 150:	528003a1 	mov	w1, #0x1d                  	// #29
 154:	94000000 	bl	0 <printf>
	printf("%d : des = %d\n", __LINE__, *++des);	// 20
 158:	f94023a0 	ldr	x0, [x29, #64]         ; des
 15c:	91001000 	add	x0, x0, #0x4           ; des+4
 160:	f90023a0 	str	x0, [x29, #64]         ; des
 164:	f94023a0 	ldr	x0, [x29, #64]         ; des 
 168:	b9400001 	ldr	w1, [x0]               ; *des
 16c:	90000000 	adrp	x0, 0 <main>
 170:	91000000 	add	x0, x0, #0x0
 174:	2a0103e2 	mov	w2, w1
 178:	528003c1 	mov	w1, #0x1e                  	// #30
 17c:	94000000 	bl	0 <printf>
	printf("%d : src = %d\n", __LINE__, *src);	// 10 src被des操作,但src本身没有移动,仍指向data首地址.
 180:	f94027a0 	ldr	x0, [x29, #72]
 184:	b9400001 	ldr	w1, [x0] ; *src
 188:	90000000 	adrp	x0, 0 <main>
 18c:	91000000 	add	x0, x0, #0x0
 190:	2a0103e2 	mov	w2, w1
 194:	528003e1 	mov	w1, #0x1f                  	// #31
 198:	94000000 	bl	0 <printf>
 19c:	52800000 	mov	w0, #0x0                   	// #0
}
 1a0:	a8c57bfd 	ldp	x29, x30, [sp], #80
 1a4:	d65f03c0 	ret
